/* Soubor je ulozen v kodovani UTF-8.
 * Kontrola kódování: Příliš žluťoučký kůň úpěl ďábelské ódy. */

package cz.vse.adventura.po1715.xshet00_shevtsova.hra;


import java.util.Collection;
import static cz.vse.adventura.po1715.xshet00_shevtsova.hra.Texty.*;


/*******************************************************************************
 * Instance třídy {@code PrikazJdi} představují příkaz jdi, přesun z jedné
 * místnosti do druhé
 *
 * @author    Tatyana Shevtsova
 * @version  
 */
public class PrikazJdi extends APrikaz
{
//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
//== STATICKÝ INICIALIZAČNÍ BLOK - STATICKÝ KONSTRUKTOR ========================
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================
    private static final String NEPROVEDENO = zNENÍ_CIL;
//        "Akce nebyla provedena. Nebyla zadána místnost, do níž se má přejít.";

    private static final String NELZE_JIT = zNENÍ_CIL;
//            "Do zadané místnosti se odsud nedá přejít.";

    private static final String PRESUN = zPŘESUN;
//            "Přesunul(a) jste se do místnosti: ";

//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================
   /***************************************************************************
     * Vytvoří instanci mající na strosti reakci na příkaz <b>jdi</b>,
     * po jehož zadaní se hráč přesune do místnosti,
     * jejíž název bude uveden za příkazem.
     */
    public PrikazJdi()
    {
        super( pJDI, //"Jdi",
               "Přesune hráče do zadané místnosti.\n" +
               "Tato místnost musí být dostupná z aktuální místnosti." );
    }


//== ABSTRAKTNÍ METODY =========================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ =====================================
//== OSTATNÍ NESOUKROMÉ METODY INSTANCÍ ========================================
  /***************************************************************************
     * Přesune hráče do zadané cílové místnosti;
     * před tím však zkontroluje, zda byla zadána cílová místnost a
     * zda je do ní možno se v daném okamžiku z aktuální místnosti přesunout.
     *
     * @param parametry Místnost, kam se hráč chce přesunout
     * @return Text zpravy vypsane po provedeni prikazu
     */
    @Override
    public String execute( String... parametry )
  {
  String název=parametry[0];
  Mistnost cil = Mistnost.getMístnost(parametry[0]);
  Mistnost aktuální=Mistnost.getAktuálníMístnost();
  Collection<Mistnost> sousedé = aktuální.getNeighbors();
  if ((cil==null) || (!sousedé.contains(cil))){
      return zNENÍ_CIL;
  }

  Mistnost.setAktuálníMístnost(cil);
  return zPŘESUN + cil.getName();
    }

//== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== INTERNÍ DATOVÉ TYPY =======================================================
//== TESTY A METODA MAIN =======================================================

}
